<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>清除浮动的几种方式</title>
		<style type="text/css">
			.parent {
				border: 1px solid #1d00ff;
				margin: 10px;
			}

			.float-items {
				float: left;
				width: 100px;
				height: 100px;
				background: #ffaa7f;
			}

			/* 
				第一种：直接在父盒子上加上高度
				**蠢**
			*/
			.clear-float-1 {
				height: 100px;
			}

			/* 
				第二种：利用 clear
				优点：代码简洁、理解方便、通俗易懂、容易掌握；
				缺点：增加多余的空标签，有违结构与表现的分离
			*/
			.clear-float-2 {
				clear: both;
			}

			/*
				第三种：利用 overflow 开启BFC，可设置 auto、hidden
				优点：简单，代码少，浏览器支持好；
				缺点：不能和 position 配合使用，超出尺寸的内容会被隐藏
			*/
			.clear-float-3 {
				overflow: auto;
			}

			/*
				第四种：利用 after 伪元素
				优点：符合闭合浮动思想，结构语义化正确；
				缺点：代码多
			*/
			.clear-float-4 {
				/* 解决ie6，ie7浮动问题 */
				*zoom: 1;
			}

			/* 要使IE8支持 after 伪元素请写单冒号（:） */
			.clear-float-4:after {
				content: "";
				/* 因为伪元素是行内元素，使其以块级元素显示，占满一行空间 */
				display: block;
				clear: both;

				/* 避免生成内容破坏原有布局的高度，可以不写 */
				height: 0;
				/* 使生成的内容不可见，可以不写 */
				visibility: hidden;
			}

			/*
				第五种：父元素也浮动，开启BFC（不建议使用）
			*/
			.clear-float-5 {
				float: left;
			}

			/*
				第六种：利用 display 开启BFC，可取值 table、inline-block、grid 等等（不建议使用）
			*/
			.clear-float-6 {
				display: inline-block;
			}
		</style>
	</head>
	<body>
		<div class="parent clear-float-1">
			<div class="float-items"></div>
		</div>
		<div class="parent">
			<div class="float-items"></div>
			<div class="clear-float-2"></div>
		</div>
		<div class="parent clear-float-3">
			<div class="float-items"></div>
		</div>
		<div class="parent clear-float-4">
			<div class="float-items"></div>
		</div>
		<div class="parent clear-float-5">
			<div class="float-items"></div>
		</div>
		<div class="parent clear-float-6">
			<div class="float-items"></div>
		</div>
	</body>
</html>
